package net.csdn.business.discuss.api.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import net.csdn.business.discuss.api.model.dto.DeleteResourceDTO;
import net.csdn.business.discuss.api.model.dto.NewDiscussSectionDTO;
import net.csdn.business.discuss.api.model.dto.UpdateAuditStatusDTO;
import net.csdn.business.discuss.api.model.dto.UpdateDiscussSectionDTO;
import net.csdn.business.discuss.api.model.entity.DiscussSection;
import net.csdn.business.discuss.api.model.query.DiscussSectionQuery;
import net.csdn.business.discuss.api.model.vo.DiscussSectionVO;

/**
 * 讨论类型分组Service接口
 * 
 * @author Admin Cloud
 * @date 2023-07-15
 */
public interface IDiscussSectionService extends IService<DiscussSection>
{

    /**
     * 分页查询讨论类型分组
     *
     * @param query 讨论类型分组详细信息
     * @return 讨论类型分组
     */
    public Page<DiscussSectionVO> findPageList(DiscussSectionQuery query);

    /**
     * 根据id查询讨论类型分组详细信息
     * 
     * @param id 讨论类型分组主键
     * @return 讨论类型分组
     */
    public DiscussSectionVO selectDiscussSectionById(String id);


    /**
     * 根据id查询讨论类型分组详细信息，以及分组下的类别
     *
     * @param id 讨论类型分组主键
     * @return 讨论类型分组
     */
    public DiscussSectionVO selectDiscussSectionDetail(String id);


    /**
     * 根据sourceId查询讨论类型的分组列表
     *
     * @param sourceId
     * @return 讨论类型分组集合
     */
    public List<DiscussSectionVO> selectDiscussSectionListBySourceId(String sourceId);

    /**
     * 查询讨论类型分组列表
     * 
     * @param query 讨论类型分组
     * @return 讨论类型分组集合
     */
    public List<DiscussSectionVO> selectDiscussSectionList(DiscussSectionQuery query);

    /**
     * 新增讨论类型分组
     * 
     * @param discussSection 讨论类型分组
     * @return 结果
     */
    public String insertDiscussSection(NewDiscussSectionDTO discussSection);

    /**
     * 修改讨论类型分组
     * 
     * @param discussSection 讨论类型分组
     * @return 结果
     */
    public Integer updateDiscussSection(UpdateDiscussSectionDTO discussSection);


    /**
     * 删除讨论类型分组信息
     * 
     * @param params 删除请求信息
     * @return 结果
     */
    public Integer deleteDiscussSectionById(DeleteResourceDTO params);

    /**
     * 更改审核状态
     *
     * @param params 请求参数
     * @return 结果
     */
    public Integer updateAuditStatus(UpdateAuditStatusDTO params);
}
